Oscillating-resonant-module controller

ABSTRACT

The current document is directed to various types of oscillating resonant modules (“ORMs”), including linear-resonant vibration modules, that can be incorporated in a wide variety of appliances, devices, and systems to provide vibrational forces. The vibrational forces are produced by back-and-forth oscillation of a weight or member along a path, generally a segment of a space curve. A controller controls each of one or more ORMs to produce driving oscillations according to a control curve or control pattern for the ORM that specifies the frequency of the driving oscillations with respect to time. The driving oscillations, in turn, elicit a desired vibration response in the device, appliance, or system in which the one or more ORMs are included. The desired vibration response is achieved by selecting and scaling control patterns in view of known resonance frequencies of the device, appliance, or system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Pat. No. 11,152,882, issuedOct. 19, 2021. Application Ser. No. 16/806,925, filed Mar. 2, 2020,which is a continuation-in-part of application Ser. No. 15/043,584,filed Feb. 14, 2016, which claims the benefit of Provisional PatentApplication No. 62/116,144, filed Feb. 13, 2015.

TECHNICAL FIELD

The current document is related to vibration-generating devices and, inparticular, to vibration modules that can be incorporated into a widevariety of different types of electromechanical devices and systems toproduce predetermined vibration responses.

BACKGROUND

Vibration-inducing motors and mechanisms have been used for many yearsin a wide variety of different consumer appliances, toys, and otherdevices and systems. Examples include vibration signals generated bypagers, smart phones, vibration-driven appliances, such as hair-trimmingappliances, electric toothbrushes, electric toy football games, and manyother appliances, devices, and systems. The most commonelectromechanical system used for generating vibrations is anintentionally unbalanced electric motor.

FIGS. 1A-B illustrate an unbalanced electric motor typically used forgenerating vibrations in a wide variety of different devices. As shownin FIG. 1A, a small, relatively low-power electric motor 102 rotates acylindrical shaft 104 onto which a weight 106 is asymmetrically ormounted. FIG. 1B shows the weight asymmetrically mounted to the shaft,looking down at the weight and shaft in the direction of the axis of theshaft. As shown in FIG. 1B, the weight 106 is mounted off-center on theelectric-motor shaft 104. FIGS. 2A-B illustrate the vibrational motionproduced by the unbalanced electric motor shown in FIGS. 1A-B. As shownin FIGS. 2A-B, the asymmetrically-mounted weight creates an ellipticaloscillation of the end of the shaft, normal to the shaft axis, when theshaft is rotated at relatively high speed by the electric motor. FIG. 2Ashows displacement of the weight and shaft from the stationary shaftaxis as the shaft is rotated, looking down on the weight and shaft alongthe shaft axis, as in FIG. 1B. In FIG. 2A, a small mark 202 is providedat the periphery of the disk-shaped end the of electric-motor shaft toillustrate rotation of the shaft. When the shaft rotates at high speed,a point 204 on the edge of the weight traces an ellipsoid 206 and thecenter of the shaft 208 traces a narrower and smaller ellipsoid 210.Were the shaft balanced, the center of the shaft would remain at aposition 212 in the center of the diagram during rotation, but thepresence of the asymmetrically-mounted weight attached to the shaft, aswell as other geometric and weight-distribution characteristics of theelectric motor, shaft, and unbalanced weight together create forces thatmove the end of the shaft along the elliptical path 210 when the shaftis rotated at relatively high speed. The movement can be characterized,as shown in FIG. 2B, by a major axis 220 and minor axis 222 ofvibration, with the direction of the major axis of vibration equal tothe direction of the major axis of the ellipsoids, shown in FIG. 2A, andthe length of the major axis corresponding to the amplitude of vibrationin this direction. In many applications, in which oscillation back andforth along a defined path is desired, designers seek to force themajor-axis-amplitude/minor-axis-amplitude ratio to be as large aspossible, to approach a linear path, but, because the vibration isproduced by a rotational force, it is generally not possible to achieveoscillation back and forth along a defined path. In many cases, the pathtraced by the shaft center may be close to circular. The frequency ofvibration of the unbalanced electric motor is equal to the rotationalfrequency of the electric-motor shaft, and is therefore constrained bythe rate at which the motor can rotate the shaft. At low rotationalspeeds, little vibration is produced.

While effective in producing vibrations, there are many problemsassociated with the unbalanced-electric-motor vibration-generatingunits, such as that shown in FIG. 1A, commonly used in the variousdevices, systems, and applications discussed above. Unbalancing theshaft of an electric motor not only produces useful vibrations that canbe harnessed for various applications, but also produces destructive,unbalanced forces within the motor that contribute to rapiddeterioration of motor parts. Enormous care and effort is undertaken toprecisely balance rotating parts of motors, vehicles, and other types ofmachinery, and the consequences of unbalanced rotating parts are wellknown to anyone familiar with automobiles, machine tools, and other suchdevices and systems. The useful lifetimes of many devices andappliances, particularly hand-held devices and appliances, that employunbalanced electric motors for generating vibrations may range from afew tens of hours to a few thousands of hours of use, after which thevibrational amplitude produced by the devices declines precipitously asthe electric motor and other parts deteriorate. Unbalanced electricmotors are relatively inefficient at producing vibrational motion. A fargreater amount of power is consumed by an unbalanced electrical motor toproduce a given vibrational force than the theoretical minimum powerrequired to produce the given vibrational force. As a result, manyhand-held devices that employ unbalanced electric motors for generatingvibrations quickly consume batteries during use. Unbalanced electricmotors, as discussed above, oscillating motion back and forth along apredefined path, or space curve, cannot generally be produced byunbalanced electric motors. Unbalanced electric motors generatevibrations in only a very limited portion of the totalvibrational-force/frequency space. FIG. 3 shows a graph of vibrationalforce with respect to frequency for various types of unbalanced electricmotors. The graph is shown as a continuous hypothetical curve, although,of course, actual data would be discrete. As shown in FIG. 3, forrelatively low-power electric motors used in hand-held appliances, onlya fairly narrow range of frequencies centered about 80 Hz (302 in FIG.3) generate a significant vibrational force. Moreover, the vibrationalforce is relatively modest. The bulk of energy consumed by an unbalancedelectric motor is used to spin the shaft and unbalanced weight and toovercome frictional and inertial forces within the motor. Only arelatively small portion of the consumed energy is translated intodesired vibrational forces.

Because of the above-discussed disadvantages with the commonly employedunbalanced-electric-motor vibration-generation units, designers,manufacturers, and, ultimately, users of a wide variety of differentvibration-based devices, appliances, and systems continue to seek moreefficient and capable vibration-generating units for incorporation intomany consumer appliances, devices, and systems.

SUMMARY

The current document is directed to various types of oscillatingresonant modules (“ORMs”), including linear-resonant vibration modules,that can be incorporated in a wide variety of appliances, devices, andsystems to provide vibrational forces. The vibrational forces areproduced by back-and-forth oscillation of a weight or member along apath, generally a segment of a space curve. A controller controls eachof one or more ORMs to produce driving oscillations according to acontrol curve or control pattern for the ORM that specifies thefrequency of the driving oscillations with respect to time. The drivingoscillations, in turn, elicit a desired vibration response in thedevice, appliance, or system in which the one or more ORMs are included.The desired vibration response is achieved by selecting and scalingcontrol patterns in view of known resonance frequencies of the device,appliance, or system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-B illustrate an unbalanced electric motor typically used forgenerating vibrations in a wide variety of different devices.

FIGS. 2A-B illustrate the vibrational motion produced by the unbalancedelectric motor shown in FIGS. 1A-B.

FIG. 3 shows a graph of vibrational force with respect to frequency forvarious types of unbalanced electric motors.

FIGS. 4A-D illustrate, in part, what is meant by the phrase “oscillatingresonant module” in the current document.

FIGS. 5A-G illustrate one particular type of ORM.

FIGS. 6A-B illustrate an H-bridge switch that can be used, in variousORMs, to change the direction of current applied to a coil that drivesback-and-forth oscillation within the ORM.

FIG. 7 provides a block diagram of the ORM, illustrated in FIGS. 5A-G.

FIGS. 8A-C provide control-flow diagrams that illustrate the controlprogram, executed by the CPU, that controls operation of an ORM.

FIG. 9 represents the range of frequencies and vibrational forces thatcan be achieved by different implementations of ORM and ORM controlprograms.

FIG. 10 shows a plot of the amplitude/frequency space and regions inthat space that can be operationally achieved by unbalanced electricalmotors and by ORMs.

FIGS. 11-18 show a variety of different alternative implementations ofORMs.

FIG. 19 illustrates an enhancement of an implementation of the ORM shownin FIG. 17.

FIG. 20 illustrates a first coil layer.

FIG. 21 illustrates a second coil layer.

FIG. 22A illustrates a cross-section of a stator having two coil layers.

FIG. 22B illustrates a cross-section of a stator having four coillayers.

FIG. 22C illustrates a cross-section of a stator having two coil layers.

FIG. 23A illustrates a motor with a driving force that is perpendicularto the surface of a substrate.

FIG. 23B illustrates the motor with a magnetic armature in an upwardposition.

FIG. 23C illustrates the motor with a magnetic armature in a downwardposition.

FIGS. 24A-D provide illustrations of various physical and mathematicalconcepts related to oscillation.

FIG. 25 shows a block diagram of a generic device, appliance, or systemthat employs ORMs to generate vibration.

FIGS. 26A-B illustrate multiple resonant frequencies within a device orsystem.

FIG. 27 provides an example resonant-frequency table for the genericORM-containing device discussed above with reference to FIG. 25.

FIGS. 28A-C illustrate how an ORM control scheme combines with aresonant frequency to produce a vibration response.

FIG. 29 shows a few examples of control patterns that may be applied toORMs by the control logic within the generic device.

FIG. 30 shows an example vibration-type table that may be prepared forthe generic device shown in FIG. 25.

FIGS. 31-36 provide control-flow diagrams to illustrate control logicused in the generic device, discussed above with reference to FIG. 25,to produce well-defined vibration modes or vibration responses in thephysical device or system.

FIGS. 37A-D illustrate pulse-width modulation control of an ORM.

FIG. 38A illustrates a control pattern that involves a constant-voltagesignal 3802 from an initial time 1, 3804 to a final, end time t_(f)3806.

FIG. 38B illustrates the actual vibration response of the ORM.

FIG. 39 illustrates modification of the naïve control pattern, shown inFIG. 38A, in order to achieve a better approximation of the desiredconstant-amplitude oscillation in the time interval t_(i) to t_(f).

FIGS. 40A-40F illustrate movable mechanical stops and mechanicallatches, two types of mechanical control features that may be includedin various types of ORMs.

FIG. 41 shows example information that may be stored in order to moreaccurately control ORMs according to the methods and considerationsdisclosed in the current document.

FIG. 42 provides an alternative implementation of the routine “generatevibration,” discussed above with reference to FIG. 36.

FIG. 43 illustrates both methods for increasing the complexity of ORMtime-dependent driving oscillations as well as increasing andsimplifying feedback control.

FIG. 44 illustrates one type of ORM driving-oscillation sensor that canbe employed to provide feedback information for ORM control.

FIG. 45 illustrates an alternative approach to sensing the drivingoscillations produced by an ORM.

FIGS. 46A-B illustrate several possible direct-sensing approaches.

DETAILED DESCRIPTION

The current document is directed to various oscillating resonant modules(“ORMs”), including various types of linear oscillating resonant modules(“linear ORMs”), that can be used within a wide variety of differenttypes of appliances, devices, and systems, to generate vibrationalforces. ORMs produce vibrational forces by oscillation of a weight orcomponent within the ORM along a segment of a space curve, rather thanas a by-product of an unbalanced rotation, as in the case of unbalancedelectric motors. The oscillatory nature of the ORM vibration-inducingmotion effectively addresses many problems associated with unbalancedelectric motors. Combining an ORM with feedback control, so that thedriving frequency produced by the ORM falls close to the resonantfrequency of a device in which the ORM is included, results in optimalpower consumption with respect to the amplitude and frequency ofvibration produced by the ORM as well as maximal vibration energy of thedevice. Oscillation within a ORM may translate into highly directionaldriving forces produced by the ORM to drive a vibration response in anappliance or device that incorporates the ORM. The current documentincludes a first subsection, in which various types of ORMs aredescribed, a second subsection on which an ORM controller is discussed,and a third subsection in which accurate methods for ORM control, towhich the current document is directed, are described in detail.

ORMs

FIGS. 4A-D illustrate, in part, what is meant by the phrase “oscillatingresonant module” in the current document. In contrast to theabove-discussed unbalanced electric motors often used to generatevibrations in vibration-driven appliances, an oscillating resonantmodule contains a weight, or mass, that oscillates back and forth alonga path. The path may be a linear path, or line segment, but, in thegeneral case, can be potentially any particular segment of a spacecurve. FIG. 4A illustrates operation of a linear oscillating resonantmodule. In a first diagram 402, labeled with the time “0,” the linearORM is depicted at time 0 (404 in FIG. 4A), with the mass or weight 406centered within a linear path 408 bounded by two stops 410 and 412. Whenthe linear ORM is activated, the weight begins moving to the left, asshown in diagram 414. The small arrow 415 within the disk-like mass 406indicates the direction of movement. The mass continues to move, asshown in diagram 416, until the mass strikes the left-hand stop 410, atwhich point the direction of travel of the mass reverses and the massbegins moving back in the opposite direction, as shown in diagram 418.In diagrams 419 and 420, the mass continues in its rightward directionof travel during time intervals 4 and 5. At time 6, as shown in diagram421, the mass strikes the right-hand stop 404 and reverses direction,traveling back in the leftward direction, as shown in diagram 422.Ellipses 424 indicate that this process continues indefinitely duringoperation of the linear ORM. The mass oscillates back and forward alongthe linear path. The period of oscillation and the maximum amplitude ofoscillation can generally be controlled by control signals input to anORM.

FIG. 4B illustrates a mapping of a continuous logical movement of theweight along a circle to the actual linear motion of the weight within alinear ORM, as discussed above with reference to FIG. 4A. In FIG. 4B,the position of the weight is plotted along a circle 430. At time 0,represented by point 432, the weight position is vertically mapped, asindicated by dotted line 434 as well as by the solid line 436 within thecircle 430, to a central point 438 on the linear path 440 shown belowthe circle. The position of the weight travels along the circle, in acounter-clockwise direction, as long as the linear ORM operates, asindicated by the dashed circular arrow 442. At time 1, indicated bypoint 444 on circle 430, the position of the mass is mapped, by verticaldashed line 446, to point 448 on linear path 440. At time 2, representedby point 450, the position of the mass on the linear path 440 is point452. At time 3, represented by point 454 along the circle, the positionof the mass is again point 448. Thus, as the position of the massplotted along the circle has moved from point 444 to point 454, thedirection of movement of the mass has reversed and the mass is nowcontinuing in the opposite direction from the direction in which itoriginally moved. Small horizontal arrows, such as arrow 456, shownbelow the linear path 440, illustrate the linear motion of the mass ofthe linear ORM between each pair of adjacent time points. Thus, theback-and-forth oscillation of the mass in a linear ORM can be describedby a logical revolution of a mass about a circle. If the circle has aradius of 1, then the position x at time t of the mass along the actualpath of travel can be expressed as:

x(t)=cos(ωt−π/2).

where ω is the angular velocity at which the point representing the massmoves around the circle.

FIG. 4C illustrates a general space-curve segment path. In FIG. 4C, ashort space-curve segment 460 is shown plotted in a three-dimensionalCartesian coordinate system 462. The weight or mass of an oscillatingresonant module (“ORM”) may oscillate back and forth along such aspace-curve-segment path. In the first plot in FIG. 4C 458, the weightor mass moves from left to right along the path, as indicated by thesmall curved arrows, such as curved arrow 460. As shown in the secondplot 462 in FIG. 4C, once the weight or mass reaches the left-hand endof the space-curve segment, it reverses directions and move to the left.As shown in the third plot 464 in FIG. 4C, once the weight or massreaches the left-hand end of the space-curve segment, it again reversesdirection and moves to the right. Ellipses 466 indicate that thisback-and-forth oscillation continues while the ORM operates. Thespace-curve-segment path of the weight in an ORM is defined by thephysical implementation and operation of the ORM.

FIG. 4D illustrates two additional example paths along which the weightor mass of an ORM may oscillate. The first path is a circular arc 470and the second path is a partially elliptical arc-like path 472. Asmentioned above, many additional different types of space-curve-segmentpaths for ORMs are possible.

FIGS. 5A-G illustrate one particular type of ORM. Figures SA-G all usethe same illustration conventions, next discussed with reference to FIG.5A. The ORM includes a cylindrical housing 502 within which a solid,cylindrical mass 504, or weight, can move linearly along the inner,hollow, cylindrically shaped chamber 506 within the cylindrical housingor tube 502. The weight is a magnet, in the described an implementation,with polarity indicated by the “+” sign 510 on the right-hand end andthe “−” sign 512 on the left-hand end of the weight 504. The cylindricalchamber 506 is capped by two magnetic disks 514 and 516 with polaritiesindicated by the “+” sign 518 and the “−” sign 519. The disk-likemagnets 514 and 518 are magnetically oriented opposite from the magneticorientation of the weight 504, so that when the weight moves to eitherthe extreme left or extreme right sides of the cylindrical chamber, theweight is repelled by one of the disk-like magnets at the left or rightends of the cylindrical chamber. In other words, the disk-like magnetsact much like springs, to facilitate deceleration and reversal ofdirection of motion of the weight and to minimize or preventmechanical-impact forces of the weight and the end caps that close offthe cylindrical chamber. Finally, a coil of conductive wire 520 girdlesthe cylindrical housing, or tube 502 at approximately the mid-point ofthe cylindrical housing.

FIGS. 5B-G illustrate operation of the ORM shown in FIG. 5A. When anelectric current is applied to the coil 520 in a first direction 522, acorresponding magnetic force 524 is generated in a direction parallel tothe axis of the cylindrical chamber, which accelerates the weight 504 inthe direction of the magnetic force 524. When the weight reaches a pointat or close to the corresponding disk-like magnet 514, as shown in FIG.5C, a magnetic force due to the repulsion of the disk-like magnet 514and the weight 504, 526, is generated in the opposite direction,decelerating the weight and reversing its direction. As the weightreverses direction, as shown in FIG. 5D, current is applied in anopposite direction 530 to the coil 520, producing a magnetic force 532in an opposite direction from the direction of the magnetic force shownin Figure SB, which accelerates the weight 504 in a direction oppositeto the direction in which the weight is accelerated in FIG. 5B. As shownin Figure SE, the weight then moves rightward until, as shown in FIG.5F, the weight is decelerated, stopped, and then accelerated in theopposite direction by repulsion of the disk-like magnet 516. Anelectrical current is then applied to the coil 520 in the same direction534 as in Figure SB, again accelerating the solid cylindrical mass inthe same direction as in FIG. 5B. Thus, by a combination of a magneticfield with rapidly reversing polarity, generated by alternating thedirection of current applied to the coil, and by the repulsive forcesbetween the weight magnet and the disk-like magnets at each end of thehollow, cylindrical chamber, the weight linearly oscillates back andforth within the cylindrical housing 502, imparting a directional forceat the ends of the cylindrical chamber with each reversal in direction.

Clearly, the amplitude of the vibration and other characteristics of thevibrational forces produced within the ORM are related to the length ofthe hollow chamber in which the weight oscillates, the current appliedto the coil, the mass of the weight, the acceleration of the weightproduced by the coil, and the mass of the entire ORM. All of theseparameters are essentially design parameters for the ORM, and thus theORM can be designed to produce a wide variety of different amplitudes.

The frequency of the oscillation of the solid, cylindrical mass isdetermined by the frequency at which the direction of the currentapplied to the coil is changed. FIGS. 6A-B illustrate an H-bridge switchthat can be used, in various ORMs, to change the direction of currentapplied to a coil that drives back-and-forth oscillation within the ORM.FIGS. 6A-B both use the same illustration conventions, described nextwith respect to FIG. 6A. The H-bridge switch receives, as input, adirectional signal d 602 and direct-current (“DC”) power 604. Thedirection-control signal d 602 controls four switches 606-609, shown astransistors in FIG. 6A. When the input control signal d 602 is high, or“I,” as shown in FIG. 6A, switches 608 and 609 are closed and switches606 and 607 are open, and therefore current flows, as indicated bycurved arrows, such as curved arrow 610, from the power-source input 604to ground 612 in a leftward direction through the coil 614. When theinput-control signal d is low, or “0,” as shown in FIG. 6B, thedirection of the current through the coil is reversed. The H-bridgeswitch, shown in FIGS. 6A-B, is but one example of various differenttypes of electrical and electromechanical switches that can be used torapidly alternate the direction of current within the coil of an ORM.

FIG. 7 provides a block diagram of the ORM, illustrated in FIGS. 5A-G.The ORM, in addition to the cylindrical housing, coil, and internalcomponents shown in Figure SA, includes a power supply, a userinterface, generally comprising electromechanical buttons or switches,the H-bridge switch, discussed above with reference to FIGS. 7A-B, acentral processing unit (“CPU”), generally a small, low-poweredmicroprocessor, and one or more electromechanical sensors. All of thesecomponents are packaged together as an ORM within a vibration-basedappliance, device, or system.

As shown in FIG. 7, the ORM 700 is controlled by a control programexecuted by the CPU microprocessor 702. The microprocessor may containsufficient on-board memory to store the control program and other valuesneeded during execution of the control program, or, alternatively, maybe coupled to a low-powered memory chip 704 or flash memory for storingthe control program. The CPU receives inputs from the user controls 706that together comprise a user interface. These controls may include anyof various dials, pushbuttons, switches, or otherelectromechanical-control devices. As one example, the user controls mayinclude a dial to select a strength of vibration, which corresponds tothe current applied to the coil, a switch to select one of variousdifferent operational modes, and a power button. The user controlsgenerate signals input to the CPU 708-710. A power supply 712 providespower, as needed, to user controls 714, to the CPU 716 and optional,associated memory, to the H-bridge switch 718, and, when needed, to oneor more sensors 732. The voltage and current supplied by the powersupply to the various components may vary, depending on the operationalcharacteristics and requirements of the components. The H-bridge switch720 receives a control-signal input d 722 from the CPU. The power supply712 receives a control input 724 from the CPU to control the currentsupplied to the H-bridge switch 718 for transfer to the coil 726. TheCPU receives input 730 from one or more electromechanical sensors 732that generate a signal corresponding to the strength of vibrationcurrently being produced by the linearly oscillating mass 734. Sensorsmay include one or more of accelerometers, piezoelectric devices,pressure-sensing devices, or other types of sensors that can generatesignals corresponding to the strength of desired vibrational forces.

FIGS. 8A-C provide control-flow diagrams that illustrate the controlprogram, executed by the CPU, that controls operation of an ORM. FIG. 8Aprovides a control-flow diagram for the high-level control program. Theprogram begins execution, in step 802, upon a power-on event invoked bya user through a power button or other user control. In step 802,various local variables are set to default values, including thevariables: (1) mode, which indicates the current operational mode of thedevice; (2) strength, a numerical value corresponding to the currentuser-selected strength of operation, corresponding to the electricalcurrent applied to the coil; (3) lvl0, a previously sensed vibrationalstrength; (4) lvl1, a currently sensed vibrational strength; (6) freq,the current frequency at which the direction of current is alternated inthe coil; (6) d, the control output to the H-bridge switch; and (7) inc,a Boolean value that indicates that the frequency is currently beingincreased. Next, in step 804, the control program waits for a nextevent. The remaining steps represent a continuously executing loop, orevent handler, in which each event that occurs is appropriately handledby the control program. In certain implementations of the controlprogram, events may be initiated by interrupt-like mechanisms andstacked for execution while, in more primitive implementations, certainevents that overlap in time may be ignored or dropped. In theimplementation illustrated in FIGS. 8A-C, two timers are used, one forcontrolling the change in direction of the current applied to the coil,at a currently established frequency, and the other for controlling amonitoring interval at which the control program monitors thevibrational force currently produced. Rather than using a formal timermechanism, certain implementations may simply employ counted loops orother simple programming techniques for periodically carrying out tasks.When an event occurs, the control program begins a series of tasks, thefirst of which is represented by the conditional step 806, to determinewhat event has occurred and appropriately handle that event. When thefrequency timer has expired, as determined in step 806, the value of theoutput signal d is flipped, in step 808, and output to the H-bridgeswitch, with the frequency timer being reset to trigger a nextfrequency-related event. The frequency-timer interval is determined bythe current value of the variable freq. Otherwise, when the event is amonitor timer expiration event, as determined in step 810, then aroutine “monitor” is called in step 812. Otherwise, when the eventcorresponds to a change in the user input through the user interface, asdetermined in step 814, the routine “control” is called in step 816.Otherwise, when the event is a power-down event, as determined in step818, resulting from deactivation of a power button by the user, then thecontrol program appropriately powers down the device, in step 820, andthe control program terminates in step 822. Any other of various typesof events that may occur are handled by a default event handler 824.These events may include various error conditions that arise duringoperation of the device.

FIG. 8B provides a control-flow diagram for the routine “monitor,”called in step 812 of FIG. 8A. In step 830, the routine “monitor”converts the sensor input to an integer representing the currentvibrational force produced by the ORM and stores the integer value inthe variable lvl1. Next, in step 832, the routine “monitor” determineswhether or not the ORM is currently operating in the default mode. Inthe default mode, the ORM uses continuous feedback control to optimizethe vibrational force produced by the ORM by continuously seeking tooperate the ORM at a frequency as close as possible to the resonantfrequency for the ORM. Other, more complex operational modes may behandled by various more complex routines, represented by step 834 inFIG. 8B. More complex vibrational modes may systematically and/orperiodically alter the frequency or produce various complex,multi-component vibrational modes useful in certain applications,appliances, devices, and systems. These more complex modes areapplication dependent, and are not further described in the control-flowdiagrams. In the case that the operational mode is the default mode, inwhich the control program seeks to optimize the vibrational forcegenerated by the device, in step 836, the routine “monitor” determineswhether the local variable inc is set to TRUE. If so, then the controlprogram is currently increasing the frequency at which the deviceoperates in order to obtain the resonance frequency. When lvl1 isgreater than lvl0, as determined in step 838, then the vibrational forcehas been recently increased by increasing the frequency, and so theroutine “monitor” increases the frequency again, in step 840, andcorrespondingly resets the frequency timer. Otherwise, when lvl1 is lessthan lvl0, as determined in step 842, then the control program hasincreased the frequency past the resonance frequency, and therefore, instep 844, the control program decreases the frequency, sets the variableinc to FALSE, and correspondingly resets the frequency timer. In similarfashion, when the variable inc is initially FALSE, as determined in step836, and when lvl1 is greater than lvl0, as determined in step 846, theroutine “monitor” decreases the value stored in the variable freq, instep 848 and resets the frequency timer. Otherwise, when lvl1 is lessthan I/O, as determined in step 860, then the routine “monitor”increases the value stored in the variable freq, sets the variable incto TRUE, and resets the frequency timer in step 862. Finally, the valuein lvl1 is transferred to lvl0 and the monitor timer is reset, in step864.

FIG. 8C provides a control-flow diagram for the routine “control.”called in step 816 in FIG. 8A. This routine is invoked when a change inthe user controls has occurred. In step 860, the variables mode andstrength are set to the currently selected mode and vibrationalstrength, represented by the current states of control features in theuser interface. Next, in step 862, the routine “control” computes anoutput value p corresponding to the currently selected strength, storedin the variable strength, and outputs the value p to the power supply sothat the power supply outputs an appropriate current to the coil.Finally, in step 864, the routine “control” computes a new monitor timerinterval and resets the monitor timer accordingly.

The control program described with reference to FIGS. 8A-C is oneexample of many different implementations of the control program thatcan be carried out, depending on requirements of the ORM, the parametersand characteristics inherent in a particular ORM, the types of controlinputs received from a particular user interface, the nature of thepower supply, and the types of operational modes that are implementedfor the ORM.

FIG. 9 represents the range of frequencies and vibrational forces thatcan be achieved by different implementations of ORM and ORM controlprograms. FIG. 9 has the same axes as the graph shown in FIG. 3.However, unlike FIG. 3, FIG. 9 includes many different curves, such ascurve 902, each representing the vibrational forces and frequencies thatcan be obtained from a particular ORM implementation. Again, an ORMsgenerally has at least one resonant frequency that is characteristic ofthe geometry and weights of various components of the ORM, and each ORMis naturally operated at a frequency close to this resonant frequency inorder to achieve maximum vibrational force. Thus, rather than beingrestricted, over all possible implementations, to a relatively narrowrange of frequencies and vibrational forces, as in the case ofunbalanced electrical motors, ORMs can be designed and implemented toproduce desired vibrational forces over a wide range of vibrationalfrequencies, and desired vibrational frequencies over a wide range ofdesired vibrational forces. The contrast is perhaps best seen in FIG.10. FIG. 10 shows a plot of the amplitude/frequency space and regions inthat space that can be operationally achieved by unbalanced electricalmotors and by linear ORMs. Unbalanced electric motors can be implementedto produce amplitude/frequency combinations roughly within thecross-hatched square region 1002 within amplitude/frequency space. Bycontrast, linear ORMs can be designed and implemented to produceamplitude/frequency combinations underlying curve 1004. Thus, linearORMs can achieve much higher operational frequencies and much loweroperational frequencies than can be practically obtained by unbalancedelectric motors, and can produce much higher amplitudes and vibrationalforces than can be achieved by relatively low-powered unbalancedelectrical motors used in hand-held appliances and other commonlyencountered devices and systems. Furthermore, when larger vibrationalforces are needed, balanced electrical motors are generally impracticalor infeasible, due to the destructive forces produced within theelectrical motors. In general, a single implemented linear ORM canaccess a much larger region of amplitude/frequency space than currentlyavailable vibration modules, which generally operate at fixed amplitudesand/or fixed frequencies, as further discussed below.

FIGS. 11-18 show a variety of different alternative implementations ofORMs. FIG. 11 provides a schematic illustration of an ORM similar tothat discussed above with reference to FIG. 4A. Note that, in place ofthe end magnets 1102 and 1104, mechanical springs may alternatively beused. These may be traditional helical springs made from metal orsprings made from a compressible and durable material or mechanicaldevice that seeks to restore its initial shape when depressed orcompressed. Note that the weight and chamber may be cylindrical, incross section, as discussed above with reference to Figure SA, or mayhave other shapes, including rectangular or hexagonal cross-sections.

FIG. 12 shows a similar implementation in which the control unit andpower supply are incorporated into the moving mass 1202. In thisimplementation, the relative masses of the moving mass 1202 andremaining components of the ORM is maximized, thus maximizing thevibrational forces produced at a given level of power consumption.

FIG. 13 shows yet an alternative ORM. In this alternativeimplementation, additional coils 1302 and 1304 are incorporated in themoving mass, and a centering magnet or coil 1306 is positioned in afixed location on the housing so that, when the direction of the currentapplied to the coils 1302 and 1304 is alternated, an oscillatingrotational force is generated to cause the movable weight to oscillateboth in a plane perpendicular to the axis of the chamber as well aslinearly oscillating the direction of the chamber.

FIG. 14 illustrates an ORM in which multiple electromagnetic coils areemployed. In FIG. 14, two coils 1402 and 1404 are placed in twodifferent positions on the housing. The first coil 1402 may be used todrive linear oscillation of the moving mass 1406, while the second coilmay be activated in order to shorten the length of the chamber withinwhich the moving mass linearly oscillates, essentially serving as asecond repelling magnet. In this implementation of the ORM, the movingmass may linearly oscillate with at least two different amplitudes,depending on whether or not the second coil 1404 is activated to repelthe moving mass. Additionally more complex patterns of current reversalin the two coils can be employed to produce complex multi-componentvibrational modes of the moving mass.

When the housing is fully enclosed, air within the chamber serves todampen oscillation of the moving mass. This dampening may be minimizedby providing channels, on the sides of the moving mass, to allow air topass from one side of the moving mass to the other, by channels throughthe moving mass, or by providing openings in the housing to allow air tobe forced from the housing and drawn into the housing. Additionally,different fluids or liquids may be employed within the chamber to changethe dampening effect produced by displacement of the fluids and gassesas the moving mass linearly oscillates.

FIG. 15 illustrates an alternative ORM an implementation of thelinear-resonant vibration module to which current document is directedin which a plunger linearly oscillates to produce a vibration. Theplunger 1502 is slideably contained within a moveable-component trackorthogonal to a long axis of the main housing 1504 of the ORM thatincludes the power supply, microcontroller, and other controlcomponents. The plunger is girdled by, or includes, a driving magnet1506 that is attracted to, and seeks to be positioned in alignment with,a centering magnet 1508 mounted within the housing. Applying current toone of two driving coils 1512 and 1514 forces the driving magnet awayfrom the equilibrium position shown in FIG. 15. By rapidly switching thedirection of current applied to the driving coils, the microcontrollercan control the plunger to linearly oscillate in an up-and-down fashion,as indicated by arrow 1520.

FIG. 16 shows yet another ORM an implementation of the linear-resonantvibration module to which current document is directed. In this animplementation of the linear-resonant vibration module to which currentdocument is directed, a spring-like member 1602 is clamped at one end1604 to the housing. Driving magnets 1606 and 1608 are fixed to thespring-like member 1602, and when current is rapidly reversed in a coil1610, the spring-like member 1602 is induced to vibrate at a relativelyhigh frequency.

FIG. 17 shows another ORM similar to the ORM shown in FIG. 16. In thisORM, the spring member 1702 is extended to provide an external massagearm 1704 that extends out from the housing to provide a linearlyoscillating massage-foot member 1706 for massaging human skin or someother substrate, depending on the application.

FIG. 18 shows a mechanical vibration adjustment feature that can beadded to either of the ORMs shown in FIGS. 16 and 17. An adjustmentscrew 1802 can be manipulated to alter the position of a movable springclamp 1804 that acts as a movable clamping point for the spring-likemember 1806. Moving the movable spring clamp 1804 leftward, in FIG. 18,shortens the length of the spring-like member and thus tends to increasethe resonant frequency at a particular power-consumption level.Conversely, moving the movable spring clamp rightward, in FIG. 18,lengthens the spring-like member and decreases the vibrationalfrequency.

FIG. 19 illustrates an enhancement of an implementation of the ORM shownin FIG. 17. In this implementation, the massage foot is enhanced toinclude elastomer bristles 1902-1906 to transfer the linear oscillationof the massage foot to human skin or another substrate. The elastomericbristles, or pad or brush comprising numerous elastomeric bristles,allow transmission of vibration to a surface even at low operationalpowers, when a rigid or even semi-compliant massage foot would insteadsimply stop moving for inability to overcome frictional forces.

FIG. 20-23C illustrate a different type of ORM. This ORM comprises amotor incorporated within a printed circuit board (“PCB”). The motorincludes moving and non-moving components that interact viaelectromagnetic forces to produce motion. The non-moving componentsinclude a stator that generates a magnetic field. A stator can becreated by using one or more coils. In certain implementations, a statoradapted to integration with a planar substrate is produced usingcombinations of one or more spiral-shaped conductive traces.

FIG. 20 illustrates a first coil layer. The first coil layer 2000includes a substrate 2002 and a spiral-shaped trace 2004 that is woundin a clockwise direction from the outside of the spiral to the inside ofthe spiral. The spiral-shaped trace 2004 surrounds a central core andoverlays the substrate 2002. In some implementations, the substrate 2002is a printed circuit board. The width and thickness of the traceinfluence the conductivity of the resulting coil. In general, thickerand wider traces have lower electrical resistance and result in coilswith lower resistance and higher current carrying capacity. Spirals witha larger core diameter and spirals having a larger number of turnsproduce coils with correspondingly higher inductance. The inductance ofthe spiral-shaped trace 2004 with an air core at the center of thespiral is expressed as:

${L({uH})} = \frac{r^{2}N^{2}}{{{8r} + {11W}}\;}$

where:

r is the core radius in inches:

N is the number of turns; and

W is the total width of the windings in inches.

The inductance of the resulting coil can be adjusted by altering theabove parameters, as well as through the selection of core materials.

A first connection pad 2006 and a second connection pad 2008 terminatethe ends of the spiral-shaped trace 2004. In certain implementations,the first connection pad 2006 and/or the second connection pad 200 g areincorporated into one or more conductive vias connecting the first coillayer to other coil layers or to electrical circuits constructed on thesubstrate. Additional connection pads 2010, 2012, 2014, and 2016 canprovide connection points or can be incorporated into vias that connectmultiple layers of traces.

FIG. 20 additionally illustrates the placement of a number of motorelements in a particular motor implementation. At the center of thespiral-shaped trace 2004 is a circular opening 2018. The circularopening provides a space for an armature 2020. The armature 2020 can bemade from a ferrous metal or a magnetic material and moves in adirection substantially perpendicular to the surface of the substrate2002 in response to a drive current applied to the coil layer. Acentering spring 2022 retains the armature 2020 in the circular opening2018 in the substrate 2002, and allows limited movement perpendicular tothe substrate.

In certain implementations, the traces and connection pads are made fromconductive material, such as metal, copper, aluminum, or conductivealloys. The traces and connection pads on the first coil layer 2000 canbe fabricated using printed-circuit-board manufacturing techniques. Insome implementations, foil decals are created and laminated onto thesubstrate 2002. The construction of multi-layer coils is achieved usinga number of techniques, including: multi-layer PCB construction;laminated foil decals separated by insulating layers; and 2-sided PCBconstruction. In some implementations, the traces and connection padsare embedded into the substrate 2002.

FIG. 21 illustrates a second coil layer. The second coil layer 2100 isconstructed using techniques already described for the construction ofthe first coil layer 2000. A spiral-shaped trace 2102 winds in aclockwise direction from the starting connection pad 2104 to the endingconnection pad 2106. The coil layer of FIG. 20 is positioned over thecoil layer of FIG. 21 and the two layers are aligned with one another sothat the second connection pad 2008 in FIG. 20 overlays the startingconnection pad 2104 in FIG. 21, and the connection pad 2010 in FIG. 20aligns with the ending connection pad 2106 in FIG. 21. PCB vias formelectrical connections between the second connection pad 2008 in FIG. 1and the starting connection pad 2104. When the first coil layer 2000 inFIG. 20 and the second coil layer 2100 in FIG. 21 are connected in thisway and energized, the inductance of the layers is additive. In one modeof operation, current flows into the coil layer of FIG. 20 starting atthe first connection pad 2006, clockwise around the coil to the secondconnection pad 2008, through a via to the starting connection pad 2104,and clockwise to the ending connection pad 2106. Adding additional coillayers increases the total inductance of the resulting coil. Additionalconnection pads 2108, 2110, 2112, and 2114 provide connection points andsupport for vias that connect to additional coil layers. In certainimplementations, additional coil layers can be added to the coil usingsimilar methods to those described above. The additional coil layers areseparated by insulating layers or placed on opposite sides of aninsulating substrate. In certain implementations, the multi-layer coilis used as a stator in a motor.

FIG. 22A illustrates a cross-section of a stator having two coil layers.A first coil layer 2202 and a second coil layer 2204 are laminated ontoan insulating planar substrate 2206, such as a PCB. The first and secondcoil layers 2202 and 2204 are separated by an insulating layer andelectrically connected to each other with a via 2208. The stator isdriven by a first connection pad 2210 and a second connection pad 2212.In certain implementations, the second connection pad 2212 is routed tothe front surface of the PCB using a via. An opening 2214 is providedfor an armature that moves perpendicularly to the surface of thesubstrate in response to energizing the stator. The first and secondcoil layers can be constructed using the coil layers illustrated inFIGS. 20 and 21, or with similar trace patters arranged so that the coillayers produce a single direction of rotation around the opening 2214.The implementations illustrated in FIG. 22A can be extended to includeadditional coil layers laminated to both sides of a planar substrate.

FIG. 22B illustrates a cross-section of a stator having four coillayers. A first-front coil layer 2250 and a second-front coil layer 2252are laminated onto a front surface of an insulating planar substrate2254, such as a PCB. A first-back coil layer 2256 and a second-back coillayer 2258 are laminated onto a back surface of the insulating planarsubstrate 2254. A first via 2260 electrically connects the end of thefirst-front coil layer 2250 to the beginning of second-front coil layer2252. A second via 2262 electrically connects the end of the first-backcoil layer 2256 to the beginning of second-back coil layer 2258.Cross-substrate via 2264 connects the end of first-front coil layer 2250to the end of first-back coil layer 2256. When current enters at anentry connection pad 2266 and passes through the four coil layers, thecurrent travels with a single direction of rotation until the currentexits at an exit connection pad 2268. The inductance of the stator inFIG. 22B is approximately double that of the stator shown in FIG. 22A.

FIG. 22C illustrates a cross-section of a stator having two coil layers.A front coil layer 2280 and a back coil layer 2282 are laminated ontoopposing sides of an insulating planar substrate 2284, such as a PCB. Avia 2288 electrically connects the front coil layer 2280 to the backcoil layer 2282 forming a coil wound in a single direction around theopening 2290. Connection pads 2292 and 2294 provide electrical contactsfor connecting the coil to a drive current.

In some implementations, the coil layers that make up the stator are notinterconnected to form a single coil. For example, cross-substrate via2264 may be omitted, and the two front coil layers 2250 and 2252 areelectrically driven independently from the two back coil layers 2256 and2258. In other implementations, the two front coil layers 2250 and 2252are counter-wound with respect to the two back coil layers 2256 and2258. In this configuration, the magnetic fields generated in theopening 2270 by the two front coil layers oppose the magnetic fieldgenerated by the two back coil layers.

PCBs are suitable substrates for making the coils and motors describedin the current document. A PCB can be constructed using a PCB processwhere layers of printed copper are separated by a hard laminate core,for example, using FR-4 glass-reinforced epoxy. A PCB made frompolyimide can support a greater density of coils and increasedmechanical flexibility. A PCB made from a ceramic, such as aluminumoxide, provides increased heat resistance. The stators described abovecan be constructed with any of these PCB materials.

In certain implementations, the coil layers described above are arrangedto form one or more coils that overlay the front and/or back surfaces ofa PCB. The coils form a stator that drives the armature of a motor.

FIG. 23A illustrates a motor with a driving force that is perpendicularto the surface of a substrate. The motor 2300 is constructed on asubstrate 2302, such as a PCB. A first front coil layer 2304 and asecond front coil layer 2306 overlay the front surface of the substrate2302. A first back coil layer 2308 and a second back coil layer 2310overlay the back surface of the substrate. A first via 2312 electricallyconnects the first front coil layer 2304 to the second front coil layer2306 to form a front coil, and a second via 2314 electrically connectsthe first back coil layer 2308 to the second back coil layer 2310 toform a back coil. Front coil connections 2316 and 2318 provideelectrical connectivity for driving the front coil, and back coilconnections 2320 and 2322 provide electrical connectivity for drivingthe back coil.

A magnetic armature 2324 having a north pole 2326 and a south pole 2328is positioned in an opening in the substrate 2302 through the center ofthe front and back coils. In order to drive the magnetic armature 2324into vibration, a first oscillating current is applied to the front coilconnections 2316 and 2318, and a second oscillating current is appliedto the back coil connections 2320 and 2322. When the motor is operated,the current that flows through the front coil and the current that flowsthrough the back coil flow with opposite directions of rotation. Incertain implementations, this is accomplished by applying the sameoscillating current to both front and back coils provided the coils arecounter-wound. In an alternative implementation, where the coils are notcounter-wound, the second oscillating current is 180 degrees out ofphase with the first oscillating current. The resulting oscillatingmagnetic field provides a magneto-motive force to the north pole 2326and the south pole 2328 in synchrony, driving the magnetic armature 2324into vibration at a frequency proportional to the frequency at which theoscillating current is applied. In an alternative implementation, thesecond front coil layer 2306 is connected to the first back coil layer2308 with a third conductive via to form a single-drive counter-woundstator that is driven with a single oscillating current to producevibratory motion of the armature.

The magnetic armature is constructed from an axially polarized magnet.In one implementation, the magnet is a neodymium grade N-42 disk magnet.The size and shape of the magnet is adapted based, in part, on thedesired vibration profile of the motor.

FIG. 23B illustrates the motor with the magnetic armature in an upwardposition. When a first driving current is applied to a front coil 2330,the front coil 2330 generates a downward magnetic flux 2332. In responseto the downward magnetic flux 2332, an upward vertical force is exertedon the north pole 2336. As the first driving current is applied, asecond driving current is applied to a back coil 2338 and an upwardmagnetic flux 2340 is generated. In response to the upward magnetic flux2340, an upward vertical force is exerted on the south pole 2342 of themagnet. In response to the upward forces, the magnetic armature 2334moves upwards as illustrated in FIG. 23B.

FIG. 23C illustrates the motor with the magnetic armature in a downwardposition. When the direction of the first and second driving currents isreversed, the forces on the north pole 2360 and south pole 2362 arereversed. When the first reversed current is applied to a front coil2364, the front coil 2364 generates an upward magnetic flux 2366, and adownward vertical force is exerted on the north pole 2360. When thesecond reversed current is applied to a back coil 2368 a downwardmagnetic flux 2370 is generated. A downward vertical force is exerted onthe south pole 2362 of the magnetic armature 2372. In response to thesetwo forces, the magnetic armature 2372 moves downwards as illustrated inFIG. 23C.

The drive currents are alternated to cause the magnetic armature tovibrate perpendicularly to the surface of the substrate at a chosenfrequency. In one implementation, the front coil and back coil arecounter-wound with respect to each other. The front and back coils areconnected with a conductive via or wire and driven with one drivecurrent. This arrangement causes the front and back coils to generatesimultaneous magnetic flux signals in opposing directions, which, inturn, acts on the north and south poles of the magnetic armature todrive the magnetic armature into vibration.

In alternative implementations, additional coil layers are employed. Forexample, an 8-layer PCB can have four front coil layers and four backcoil layers. The four front coil layers are connected to form a frontcoil, and the four back coil layers are connected to form a back coil.In certain implementations, the front coil and back coil are counterwound, and driven with a single drive current as explained above.

Next, a slightly more mathematically descriptive explanation ofoscillation, resonance, and the Q factor is provided. FIGS. 24A-Dprovide illustrations of various physical and mathematical conceptsrelated to oscillation. Great insight into harmonic oscillators can beprovided by considering a simple, one-dimensional spring. FIG. 24Aillustrates a spring that can be extended in the x direction. In a firstdiagram 2402, the spring is shown in an equilibrium, resting state witha point or mass 2404 at the end of the spring located at the positionx=0. In a second diagram 2406, the spring has been pulled rightward,along the x direction, with the mass 2404 now located at a position x.As is well known, the extended spring has potential energy that resultsin a force F_(x) 2408 that points in the opposite direction. In otherwords, were the spring released, the mass would travel leftward,oscillate back and forth, and eventually settle back to the 0 positionshown in diagram 2402. Were the spring frictionless, however, the masswould continue to oscillate back and forth, in a manner similar to thelinear ORM described in FIGS. 4A-B, indefinitely.

The frictionless spring can be mathematically modeled as follows:

F _(x)(x)=−kx,

where F_(x) (x) is the force exerted by the spring;

x is the position of the spring end; and

k is the force constant.

The force constant k is a property of the spring, including all of theparameters that contribute to its elasticity, compressibility, and otherphysical characteristics of the spring. In more complex, realisticsituations, many different factors may contribute to the force constantsassociated with harmonic oscillators, including interaction with otherharmonic-oscillation modes within a physical device or module.

The potential energy of the spring system illustrated in FIG. 24A can bemodeled as:

${{U(x)} = {\frac{1}{2}{kx}^{2}}},$

where U(x) is the potential energy of the spring system.Using Newton's second law, the equation that models the force exerted bythe spring when it is extended or compressed can be modeled as a simple,second-order differential equation:

${{m\overset{¨}{x}} = {{Fx} = {- {kx}}}},$

where m=mass of oscillator; and

$\overset{¨}{x} = {\frac{d^{2}x}{{dt}^{2}}.}$

This differential equation can be simplified as:

${\overset{¨}{x} = {{\frac{- k}{m}x} = {{- \omega^{2}}x}}},$

where

$\omega = {\sqrt{\frac{k}{m}}.}$

The general solution for this simple, second-order differential equationis, in one form:

x(t) = C₁e^(ω t) + C₂e^(−1ω t).

In this equation, C₁ and C₂ are arbitrary constants that are determinedby the initial conditions of a particular spring system. This solutioncan be recast as:

x(t) = B₁  cos (ω t) + B₂  sin (ω t), where  B₁ = C₁ + C₂; andB₂ = i(C₁ − C₂).

A final, perhaps most elegant form of the solution is:

x(t) = Re[Ae^(i(ω t − δ))], where  Ae^(−i δ) = B₁ − iB₂ = C.

In this equation, A is the amplitude of the oscillation, ω is an angularvelocity of the oscillation, as discussed above with reference to FIG.24B, and δ is an initial phase offset. This final expression describesthe mapping of a rotation to linear harmonic oscillation, as discussedabove with reference to FIG. 4B, shown again, in FIG. 24B, withannotations taken from final expression for the solution to thedifferential equation.

As mentioned above, a frictionless spring would continue to oscillateindefinitely after being released from an extended position. However, inactual systems, there are always resistive forces, such as friction,that dampen the oscillation so that, over time, the amplitude of theoscillation decreases and the oscillation finally stops. This morecomplex and more realistic scenario can be modeled by including aresistive-force term in the second-order differential equation:

m{umlaut over (x)}+b{dot over (x)}+kx=0.

where −b{dot over (x)} is a resistive force: and

$\overset{.}{x} = {\frac{dx}{dt}.}$

Defining several new constants as follows:

${\beta = {\frac{b}{2m} = {{damping}\mspace{14mu}{constant}}}},{and}$$\omega_{0} = {\sqrt{\frac{k}{m}} = {{natural}\mspace{14mu}{frequency}}}$

and solving the above modified second-order ordinary differentialequation, the following result is obtained:

x(t)=Ae ^(−β) ¹ cos(ω₁ t−δ)

where ω_(t)=√{square root over (ω₀ ²−β²)}; and

β<ω₀.

when, as indicated above, the damping constant β has a value less thanthe value of the natural frequency ω₀, the system in under-damped andthe amplitude of the oscillations decrease non-linearly, as shown inFIG. 24C. When β is greater than ω₀, the system is over-damped, in whichcase only a single oscillation may occur, as shown in FIG. 24D.

Most physical systems have one or more natural frequencies at which theyoscillate, when mechanically perturbed from their equilibrium states. InORMs, a motor is used to continuously perturb the system in order todrive the ORM to oscillate and generate vibration. A device in which anORM is incorporated vibrates in response to a driving vibrationgenerated by the ORM. In this case, an external driving force F(t) isapplied by the ORM to drive continuous oscillation of the device inwhich it is included. An external-force-driven linear oscillator can bemodeled by the following expression:

m{umlaut over (x)}+b{dot over (x)}+kx=F(t),

where F (t) is an external driving force.With the definition:

${{f(t)} = \frac{F(t)}{m}},$

the mathematical model becomes:

{umlaut over (x)}+2β{dot over (x)}+ω ₀ ² x=f(t).

A solution for this expression is:

x(t)=A cos(ωt−δ)

where f(t)=f₀ cos(ωt):

${A^{2} = \frac{f_{0}^{2}}{( {\omega_{0}^{2} - \omega^{2}} )^{2} + {4\beta^{2}\omega^{2}}}};{and}$$\delta = {{\arctan( \frac{2{\beta\omega}}{\omega_{0}^{2} - \omega^{2}} )}.}$

In this expression, the constant ω is the driving frequency of thedriving force, which is somewhat less than the natural frequency ω₀. Ascan be seen in the expression for the square of the amplitude, which isproportional to the energy of the vibration, the amplitude is maximizedwhen the denominator of this expression is a value approaching 0.Maximizing the expression can be carried out either by varying thephysical device in order to vary the natural frequency wo, while theexternal-driving-force frequency remains fixed ω, or by varying thedriving frequency ω when the natural frequency ω₀ is fixed. When or,varies and w is fixed, A is maximum when ω₀=ω; and when ω varies and ω₀.A is maximum when ω=√{square root over (ω₀ ²−2β²)}. This is where theterm “resonance” arises. The resonant frequency is the frequency atwhich the amplitude. A is maximized. As can be seen, this occurs, ingeneral, when the driving frequency of the motor or othermechanical-force-input mechanism has a frequency close to or equal tothe natural frequency ω₀ of the physical system. A quality factor Q canbe expressed, in terms of the natural frequency and damping factor, as:

$Q = {\frac{\omega_{0}}{2\beta}.}$

This is the reciprocal of the ratio of the width of the amplitude peakat half its maximum value to the natural frequency ω₀.

An ORM Controller

FIG. 25 shows a block diagram of a generic device, appliance, or systemthat employs ORMs to generate vibration. The vibration may be generatedfor application to people, animals, or objects for various purposes,including therapeutic purposes, or may instead be generated to providehaptic feedback, such as vibration in mobile phones, vibration-basednotification, or vibration-based communications. Thus, the currentdocument is directed to particular features of a generic ORM-containingdevice or system that may be used in a wide variety of different typesof applications or included in larger devices and systems. In FIG. 25,the device, appliance, or system is represented by an outer rectangle2502. The device includes four ORMs 2504-2507. The ORMs may be of any ofmany different types, including the types of ORM discussed above. Ingeneral, the ORMs convert input energy, such as an electrical current,to mechanical vibration. The device also includes several vibrationsensor 2510-2511. There are a variety of different types of vibrationsensors, including piezoelectric accelerometers that measureacceleration in one, two, or three different orthogonal directions.Other types of sensors may include membranes attached to moving coilsthat generate electronic signals when the membrane vibrates, similar toa reverse audio speaker. In addition, the device or system contains acontroller 2516. The controller includes ORM control logic 2418 thattransmits control signals, in certain cases electrical signals that alsoserve to power the ORMs. The ORM control logic may be implemented as asequence of processor instructions, when the controller 2516 is aprocessor or processor-controlled controller subsystem. In many of theORM devices and systems, the controller accesses some type of electronicmemory 2520, which stores processor instructions and other types of datafor implementing ORM control logic 2518. Not shown in FIG. 25 arevarious standard components and signal lines, including a power supplyand power-transmitting circuitry, display screens, push buttons, otheruser-interface-related components, and other types of logic andlogic-controlled subcomponents particular to particular types ofdevices, such as transceivers and communications subsystems withinmobile phones. A set of double-headed arrows, such as double-headedarrow 2522, represent the fact that the controller may control manyother subcomponents and features of the device or system in addition tothe ORMs.

In the previous discussion of oscillation, vibration, and resonance,simple mathematical models for one-dimensional harmonic oscillation weredeveloped. However, in the generic ORM-containing device or system,there may be multiple ORMs, activation of which produce very complexthree-dimensional spatial vibration. Vibration modes of individual ORMsmay couple to produce a large number of complex spatial-vibration modes.The physical characteristics of these vibration modes may be highlydependent on the exact geometry, weight and balance, and the materialtype of the housing and internal components of a particular device orsystem. As a result, there may be numerous different natural resonantfrequencies for the device or system.

FIGS. 26A-B illustrate multiple resonant frequencies within a device orsystem. In FIG. 26A, the vibrational energy, or square of the amplitudeof the vibration, is plotted with respect to frequency. The verticalaxis represents the energy and vibration 2602 and the horizontal axisrepresents the frequency of vibration 2604. The plotted curve 2606 showsnumerous different vibration-energy peaks 2610-2615. The heights andpositions of these peaks along the frequency axis 2604 may varyconsiderably with slight changes to the physical characteristics of adevice or system that is vibrated by ORM components.

FIG. 26B shows a more complex type of vibration-response plot. Thevibration response is represented by a surface 2620 in the plot shown inFIG. 26B. Measured amplitudes or vibration energies produce a surface2620 in a three-dimensional Cartesian coordinate system that includes anx-direction vibration frequency axis 2522, ay-direction frequency axis2624, and a vibration-energy axis 2626. The device or system for whichthe vibration-response surface 2620 is obtained includes two ORMs, oneof which generates vibrations in the x direction and one of whichgenerates vibrations in they direction. The two ORMs can beindependently controlled to generate vibrations in their respectivedirections at different frequencies. The x, y plane 2628 below theplotted vibration-energy surface 2620 represents all possiblex-direction vibration frequencies and y-direction vibration frequenciesthat can be generated by the two ORMs within the device or system. Asshown in FIG. 26B, the surface includes three local vibration-energymaxima 2630-2632. These three local maxima are each associated withx-direction frequency and y-direction frequency components 2634. Thus,in the case shown in FIG. 26B, two ORMs which generate vibrations in twodifferent directions within the device or system may generate a complexvibration-response surface with respect to the frequencies at which thetwo ORMs are operated. Depending on the types and numbers of ORMs, thevibration response may be a hyper-dimensional surface in a much higherdimensional frequency space. In all cases, however, the device or systemgenerally has some number of characteristic resonant frequencies thatrepresent maximal vibration energy or amplitude with respect to thefrequencies at which individual ORMs are driven with the device orsystem. In general, the number of resonant frequencies is equal to thenumber of vibrational degrees of freedom in the device, appliance, orsystem.

A vibration-response obtained for a device or system by measuring sensoroutput can be used to identify and tabulate the natural resonantfrequencies for the device or system. FIG. 27 provides an exampleresonant-frequency table for the generic ORM-containing device discussedabove with reference to FIG. 25. Each row in the resonant-frequencytable 2702, such as row 2704, represents a local maxima, or peak, in thevibration response for the generic device. In the example table shown inFIG. 27, each peak is characterized by an amplitude in the x 2706, y2707, and z 2708 directions as well as by the frequency of vibrationrepresented by the peak ω 2710 and by the frequency at which each of thefour ORMs are driven by the ORM control logic 2712-2715. Thus, toachieve maximum vibration energy of the vibration of the generic deviceat any of the resonant frequencies for the device, the ORMs are drivenat the control frequencies for that resonant frequency.

FIGS. 28A-C illustrate how an ORM control scheme combines with aresonant frequency to produce a vibration response. FIG. 28A shows thevibration-response for a simple device, vibration of which is stimulatedby a single ORM. There is a single natural frequency ω₁ 2802corresponding to the vibration-energy peak 2804 in thevibration-response plot of vibration energy with response to frequency.FIG. 28B shows a plot of the frequency of vibration generated by an ORMwith respect to time over a time interval that represents an ORM controlscheme. In FIG. 28B, the vertical axis 2810 represents the frequency atwhich the ORM is driven by ORM-control input and the horizontal axis2812 represents time. The control curve 2814 indicates that the ORM isnon-linearly driven over an initial time period 2816 to the naturalfrequency ω₁ 2818 for the device in which the ORM is included. At afinal point in time t_(f) 2820, input to the ORM is discontinued. FIG.28C shows a vibration-response curve for the device containing the ORMwhen the ORM is operated according to the control curve 2814 discussedabove with reference to FIG. 28B. As shown in the vibration-responsecurve 2822, there is an initial lag time 2824 following initiation ofthe control scheme before a perceptible device vibration occurs, at timet, 2826. The vibrational energy, or amplitude of vibration, very steeplyincreases from this point on as the ORM is controlled to approach andequal the natural frequency ω₁ for the device. At time t_(f) 2820, thevibrational energy of the device relatively steeply falls, since the ORMis no longer being driven. However, the vibrational energy does notimmediately fall to 0, as in the control curve, but over a short periodof time 2828 after the ORM ceases to be driven.

The generic device, as discussed above, contains a memory that may storevarious types of control schemes, or control patterns, for the ORMs thatare controlled by the ORM control logic. FIG. 29 shows a few examples ofcontrol patterns that may be applied to ORMs by the control logic withinthe generic device. The example patterns include a linear ramp-up andramp-down pattern 2802, a constant control over a specified duration oftime 2904, and an oscillating control 2906. The patterns may beparameterized by the duration of the pattern 2908 and the maximum inputto the ORM 2910. The input may be specified as the current or voltage,for certain types of ORMs. Other ORMs may be controlled by digitalcontrol signals in which numerically encoded commands are transmitted tothe ORM. The control patterns can be scaled in both time and frequencyin order to generate a variety of equivalent vibration responses for theORM with similar forms, but different maximum amplitudes and overdifferent periods of time.

A set of scalable control patterns, such as those shown in FIG. 29, anda table of resonant frequencies, such as that shown in FIG. 27, can beused to generate a table of different types of vibration that can begenerated in the generic device by controlling the ORMs within thedevice according to scaled control patterns. FIG. 30 shows an examplevibration-type table that may be prepared for the generic device shownin FIG. 25. Each row in the table, such as row 3004, represents adifferent vibration type that can be produced in the generic device bycontrolling the ORMs within the device. For example, a cell phone mayuse a variety of different haptic vibration signals to alert the cellphone user of many different types of events. Each different vibrationsignal corresponds to a different vibration-type. Each vibration type ischaracterized by a vibration-type identifier 3006, an amplitude rangefor the vibration 3008, a reference duration for the vibration 3010, andthe control pattern and scaling parameters for the pattern for each ofthe ORMs 3012-3015. Each vibration type can be scaled within theamplitude range and may also be scaled for a desired duration.

By using either external or internal sensors to characterize the naturalresonant frequencies for a physical device or system that contains ORMs,a large number of different vibration responses for the physical deviceor system can be compiled based on the resonant frequencies as well as aset of ORM control patterns. In alternative vibration-controlapproaches, the different types of vibration responses may be computed,on the fly, rather than tabulated based on a set of control patterns.However, in all cases, characterization of the resonant frequencies ofthe device or system that is vibrated by the ORMs contained within thedevice or system is a necessary step in producing predictable vibrationresponses via ORM control.

FIGS. 31-36 provide control-flow diagrams to illustrate control logicused in the generic device, discussed above with reference to FIG. 25,to produce well-defined vibration modes or vibration responses in thephysical device or system. FIG. 31 illustrates the inner control loop ofthe control logic within the physical device shown in FIG. 25. The innercontrol loop waits, in step 3102, for a next event and then handles theevent that occurs. When the event is a characterize-vibration event, asdetermined in step 3104, the routine characterize vibration is called tohandle the event in step 3106. When the event is a generate-vibrationevent, as determined in step 3108, a generate-vibration routine iscalled in step 3110 to generate a vibration in response to thegenerate-vibration event. When the next event is a user-input event, asdetermined in step 3112, a process-input routine is called, in step3114, to handle the input from the user. Ellipses 3116 are used in FIG.31 to indicate that many other types of events are handled by the innerevent loop of the control logic. When, after handling the most recentlyoccurring event, there are other events that are queued for handlingwhich arose while handling the most recently handled event, asdetermined in step 3118, then a next event is dequeued in step 3120 withcontrol flowing back to step 3104. Otherwise, control flows back to step3102 where the inner event loop waits for a next event to occur.

The characterize-vibration event 3104 is an event that is raised bycontrol-logic routines, timer-expiration handlers, and by other controllogic in order to control the ORMs and sensors within the generic deviceto carry out a re-characterization of the vibration-response for thephysical device, as discussed above with reference to FIGS. 26A-B, inorder to update the resonant-frequency table, such as theresonant-frequency table discussed above with reference to FIG. 27. Indevices that employ a vibration-type table, such as the vibration-typetable discussed with reference to FIG. 30, the vibration-type table isalso updated following update of the resonant-frequency table.

A generate-vibration event is raised by control logic in order tovibrate the generic device for a variety of different reasons. As oneexample, the device may be vibrated in response to user input. Asanother example, the device may be vibrated when the control logicdetermines that any of various alert conditions have arisen. As yetanother example, generate-vibration events may be raised in order tocommunicate information to a device user.

FIG. 32 provides a control-flow diagram for the characterize-vibrationevent handler, called in step 3106 of Figurer 31. In step 3202, theroutine calls a subroutine sweep in order to generate a sampling of avibration-response curve, surface, or hyper-dimensional surface. In step3204, the routine calls a store-vibration-maxima subroutine in order toidentify the resonant frequencies from the curve or surface sampled instep 3202. Finally, in step 3206, the routine calls acompute-and-store-vibration-type-controls subroutine in order to updatethe vibration-type table based on the new resonant-frequencydetermination made in steps 3202 and 3204.

FIG. 33 provides a control-flow diagram for the subroutine sweep, calledin step 3202 of Figurer 32. In step 3302, the subroutine sweepinitializes a data structure for storing a vibration response. Asdiscussed above, the vibration response may be a sampled curve, sampledsurface, or sampled hyper-dimensional surface. In the for-loop of steps3304-3306, a frequency sweep of each ORM is initiated. A frequency sweepis a control pattern that continuously sweeps each ORM over a wide rangeof driving frequencies. Each ORM repeats a single frequency sweep over adifferent time interval, so that following a number of iterations, themulti-dimensional ORM-driving-frequency space can be sampled. Then, inthe for-loop of steps 3308-3312, the sweep routine continuously samplesthe vibration amplitude or vibrational energy produced in the device,using sensor output, while the driving-frequency sweeps take place.There are, of course, many alternative methods for sampling themulti-dimensional driving-frequency space in order to generate a sampledvibration-response curve, surface, or hyper-surface.

FIG. 34 provides a control-flow diagram for the store-variation-maximasubroutine called in step 3204 of FIG. 32. In step 3402, the routineidentifies local maxima in the vibration-response curve or surfaceproduced by the sweep routine. There are many well-known mathematicaltechniques for identifying local maxima within a curve, surface, orhyper-surface. Then, in the for-loop of steps 3404-3406, data thatcharacterizes each of the local maxima are tabulated in theresonant-frequency table.

FIG. 35 provides a control-flow diagram for thecompute-and-store-vibration-type-control subroutine called in step 3206of FIG. 32. In a for-loop of steps 3503-3509, each possible set ofORM/control-pattern/resonant-frequency triples is considered. Thecurrently considered triple is used to estimate the vibration mode andintensity of the resulting device vibration, in step 3504. In step 3505,the nearest vibration-type to the estimated vibration mode isidentified, if there is one. If a nearest vibration type is found, asdetermined in step 3506, and when the currentORM/control-pattern/resonant-frequency triple provides a device responsecloser to the vibration type than the control parameters currentlyassociated with the vibration-type, as determined in step 3507, then, instep 3508, the vibration-type table entry for the found vibration typeis updated with the current control parameters represented by thecurrently considered ORM/control-pattern/resonant-frequency triple. Ofcourse, in certain cases, there may be too many possibleORM/control-pattern/resonant-frequency triples to consider in areasonable amount of time, in which case the resonant-frequency data maybe used in other ways to find the best control parameters for thevibration types in the vibration-type table,

FIG. 36 provides a control-flow diagram for the generate-vibrationhandier called in step 3110 of FIG. 31. In step 3602, the handlerreceives a vibration type, duration, and amplitude associated with thegenerate-vibration event that is being handled. In step 3604, theappropriate ORM control parameters and patterns are selected from thevibration-type table. In step 3606, the ORM control parameters arescaled according to the received duration and amplitude. In step 3608, astop time at which the vibration will finish is determined from thereceived duration. Then, in the for-loop of steps 3610-3613, thegenerate-vibration handler continuously adjusts inputs to each ORMaccording to the scaled ORM control parameters produced in step 3606.

Precise and Accurate Control of ORMs

The current document is directed to various approaches used within thecontrol logic of an ORM-containing device, appliance, or system, toaccurately and precisely control the ORMs to produce time-dependentdriving oscillations in conformance with desired control patterns. Asdiscussed above, the combination of controlling ORMs in accordance withcontrol patterns and the accurate characterization of the resonantfrequencies of the device, appliance, or system together allow forreproducible generation of many different types of vibration responsesof the device, appliance, or system to the driving oscillations ofcontrol-pattern-controlled ORMs.

As further discussed below, many current control regimes fail toaccurately reproduce the desired driving time-dependent oscillations ineach ORM within a device, appliance, or system. As a result, thevibration response of the device, appliance, or system mat varysignificantly from a desired vibration response and, perhaps moreimportantly, may not be accurately reproduced at different points intime, due to the inability to accurately and deterministically controlthe ORMs to produce driving oscillations in conformance with desiredcontrol patterns.

A first approach to more accurately controlling ORMs is to usepulse-width modulation control signals rather than conventionalconstant-duration control pulses. FIGS. 37A-D illustrate pulse-widthmodulation control of an ORM. FIG. 37A shows a desired vibrationresponse for an ORM that represents a desired time-dependent drivingoscillation for inducing at least a portion of the vibration response ofa device, appliance, or system in which the ORM is included. The desiredvibration response of the ORM is a sine-wave-like 3702 oscillation thatis plotted, in FIG. 37A, on an amplitude versus time coordinate system3704. FIG. 37B illustrate a hypothetical control regime that attempts toproduce the desired driving oscillation discussed above with referenceto FIG. 37A in a hypothetical ORM. Constant-width voltage pulses, suchas voltage pulse 3706, are input to the ORM to drive the weight or massin forward and backward directions along the oscillation path. Thesepulses are plotted in FIG. 37B in a voltage versus time coordinatesystem 3708. Because the constant-width pulses are a rather crudeapproximation of the desired sine-wave-like vibration response, thecontrol regime shown in FIG. 37B comprises a series of positive-voltage,0-voltage, and negative-voltage constant-width pulses 3706 and 3710-3713that produce a vibration response, superimposed in FIG. 37B over thecontrol pulses, as curve 3716. In general, the pulse widths arecontrolled by an oscillating clock or clock-based timing signal. Thevibration-response curve 3716 differs significantly from the desireddriving oscillation shown in FIG. 37A. FIG. 37C shows the desiredvibration response 3702 plotted together with the vibration responseproduced by the constant-width voltage-pulse control 3716. In fact, thisis actually a relatively favorable case, because the sequence ofpositive. 0-voltage, and negative voltage pulses shown in FIG. 37B has aperiod close to the period of the desired sine-wave-like vibrationresponse. Otherwise, the actual vibration response would differ evenmore greatly from the desired vibration response, often havingirregularly shaped wave forms.

FIG. 37D illustrates pulse-width-modulation control of the ORM. Inpulse-width-modulation control, rather than using constant-width voltagepulses to control the ORM, the controller instead uses variable-widthpulses. Moreover, much shorter pulses can be used to more preciselycontrol the vibration response of the ORM. In essence, pulse-widthmodulation allows a variable-frequency control signal to be used, ratherthan a constant-frequency control signal. Because a variable-frequencycontrol signal can contain a much greater amount of information than aconstant-frequency control signal, the pulse-width-modulation controlsignals can be used to much more precisely steer the vibration responseof the ORM towards a desired wave form. As shown in FIG. 37D, many morevoltage pulses are used in order to achieve the sine-wave-like vibrationresponse of the ORM. For example, in the constant-width-pulse controlshown in FIG. 37B, a positive-voltage pulse 3706, a 0-voltage pulse, anda negative-voltage pulse 3710 are used to attempt to approximate thefirst period of the desired vibration response. By contrast, as shown inFIG. 37D, four positive-voltage pulses 3720-3722 and 3726 and threenegative-voltage pulses 3723-3725 are employed to produce the firstperiod of the desired vibration response. Moreover, these seven pulseshave varying pulse widths and are irregularly spaced along the timeaxis.

Another problem associated with conventional control of ORMs is that thevibration response produced by a control pattern is often very differentfrom the vibration response that might be predicted from the controlpattern or desired. For example, in FIG. 38A, a control pattern is shownthat involves a constant-voltage signal 3802 from an initial time t,3804 to a final, end time t_(f) 3806. Of course, this control patternmay correspond to a large number of positive-voltage pulses in the timeinterval t₁ to t_(f). The vibration response of the ORM is shown in FIG.38B. In this figure, the horizontal time axis 3808 has been rescaled toshow more detail. The control pattern 3802 shown in FIG. 38A might beinitially assumed to produce a pulse of constant-amplitude vibrationsover the time interval t₁ to t_(f). However, as shown in FIG. 38B, theactual vibration response of the ORM, shown as curve 3810, includes aninitial ramp-up interval 3812 in which the amplitude of the vibrationresponse steadily increases to the desired amplitude, a middle period3814 in which the ORM is oscillating at the desired amplitude, a shortperiod 3816 at the end of the time interval t₁ to t_(f) during which, inanticipation of the sharp control-pattern edge at time t_(f), thecontrol voltage is dropped to 0 so that the vibration will fall to a lowlevel at time t_(f), and a fourth undesired ramp-down interval 3818,extending well past the time t_(f), during which vibration of the ORMcontinues at increasingly smaller amplitudes.

FIG. 39 illustrates modification of the naïve control pattern, shown inFIG. 38A, in order to achieve a better approximation of the desiredconstant-amplitude oscillation in the time interval t_(i) to t_(f). In afirst plot 3902, the naïve control pattern is shown. In a second plot3904, the naïve control pattern is modified in order to produce theconstant-amplitude oscillation that is desired. First, a large-voltageinput 3906 occurs prior to time t_(i) in order to quickly force the ORMto begin vibrating. From time t_(i) to a time prior to time t_(f), alower-voltage input 3908 is provided in order to control the ORM tooscillate at the desired amplitude. Prior to time it, a negative-voltagecontrol signal 3910 is input to the ORM in order to sharply drive theORM towards oscillation out of phase with the desired drivingoscillation during the time interval t₁ to t_(f). This negative-voltagecontrol signal is then relaxed linearly 3912 in order to stop ORMvibration in a relatively short period of time. As shown in plot 3914 inFIG. 39, the vibration response of the ORM much more closelyapproximates a desired constant-amplitude vibration between timeintervals t₁ and t_(f).

Many different types of control inputs can be used to shape thevibration response of an ORM. For example, short control pulses can pushthe vibration to a different phase, resulting in cancellation of thepreviously established oscillation. The various types of inputs dependon the type and form of control signals that can be transmitted to theORM, which, in turn, depends on the type of ROM, the driving force usedto induce oscillation of the moving mass within the ORM, and the type oflogic circuitry that receives input signals and translates them intooscillations.

Thus, in addition to pulse-width modulation, a wide variety of differenttypes of complex control signals may be devised in order to achieve thevibration response desired from the simple control patterns discussedabove, including control pattern 3802 shown in FIG. 38A. Many differentcontrol-signal parameters may be varied in order to control an ORM toprovide a desired vibration response, including varying the voltage ofthe control signal, using pulse-width modulation to finely tailor thecontrol signal to produce a desired vibration response, and adjustingthe control signal to include pre-response and post-response signals toremove undesired ramp-up and ramp-down periods in the vibrationresponse.

In addition to varying the input control to an ORM, an ORM may bedesigned to include a variety of different mechanical controls tofurther increase the range of vibration responses of the ORM. FIGS.40A-40F illustrate movable mechanical stops and mechanical latches, twotypes of mechanical control features that may be included in varioustypes of ORMs. Equivalent electromagnetic features may be included inother types of ORMs. FIG. 40A illustrates a first type of ORM. In afirst diagram 4002, the ORM is shown in an equilibrium, non-vibratingposition. The ORM includes a moveable weight or mass 4002 that isconnected to two ends of the ORM 4004 and 4006 by springs 4008 and 4010.Diagram 4012 shows the ORM when the movable mass 4002 has been moved, byapplication of a translational force, such as an electromagnetic force,to the furthest position in the leftward direction along the oscillationpath. In this position, spring 4010 is compressed and spring 4008 isextended. In both cases, the springs have potential energy that producesforces that force the movable mass 4002 back in the rightward directiontowards stop 4012. Diagram 4014 shows the ORM with the movable mass inthe furthest rightward direction.

FIG. 40B shows the equilibrium and largest-amplitude positions of amovable mass in a different type of ORM. In a first diagram 4016, theORM is shown in an equilibrium position. The ORM features an arc-likeoscillation path 4018 along which the moving mass 4020, attached to arotor 4022, oscillates. The moving mass 4020 is attached to the rotor4022 by a flexible support 4024. Diagram 4026 shows the ORM with themovable mass in the furthest leftward position and diagram 4028 showsthe ORM with the movable mass in the furthest rightward direction,similar to the positions shown for the ORM of FIG. 40A in diagrams 4012and 4014.

FIG. 40C illustrates movable mechanical stops included in the ORMdiscussed above with reference to FIG. 40A. The movable stops aredepicted by features 4030 and 4032 in a first diagram 4034. Of course,the depictions do not necessarily reflect the shape, size, and structureof mechanical stops needed to stop motion of the moveable mass in thevarious different types of ORMs, but are instead used to illustratepositioning of the moveable stops and their deployment. In a seconddiagram 4036, the movable stops have been repositioned 4038 and 4040 inorder to limit the length of travel of the moving mass 4002. The seconddiagram 4036 shows the leftward extent of motion of the moving mass 4002with the movable stops deployed and diagram 4042 shows the rightwardextent of travel of the moving mass when the movable stops are deployed.Similar illustration conventions are used, in FIG. 40D, to illustratedeployment of movable stops in the ORM discussed above with reference toFIG. 408. Use of movable stops can significantly alter the vibrationresponse of the ORM to a given control input. This may include changingthe amplitude of the vibration response, the frequency of the vibrationresponse, and changing the force imparted by the moving mass to the ORMwhen the moving mass strikes the stops versus the original end stops4002 and 4004. In general, the vibration-response alterations arecomplex functions of the geometry, material composition, and drivingforces used in the ORM.

FIGS. 40E-F illustrate use of the movable stops, discussed above withreference to FIGS. 40C and 40D, as latches. As shown in a first diagram4048 in FIG. 40E, the movable stops have been repositioned 4050 and 4052closer to the center of the oscillation path. As shown in diagram 4054,the left-hand movable stop 4056 has been deployed when the moving mass4002 has just reached its leftward, stopped position. As a result,motion of the moving mass is stopped, resulting in an immediatecessation of the driving oscillation produced by the ORM and a higherforce exerted in the last oscillation on the left-end stop 4004 of theORM. Diagram 4058 shows the right-hand movable stop 4052 deployed tolatch the moving mass 4002 at its furthest right-hand position. FIG. 40Fshows similar deployment of the movable stops, in the ORM discussedabove with reference to FIG. 40B, to latch the moving mass at itsleftward and rightward extents. Latching of the moveable mass may trapthe moveable mass in a high-potential-energy state, so that immediate,rapid oscillation may ensue when the latch is released. Latching mayalso significantly alter the relaxation of the oscillation at the end ofcontrol-pattern execution.

The current document is directed to employing the various differenttypes of alternative control of ORMs to more accurately generate desiredvibration responses. This involves use of a much greater amount ofinformation about the ORM than used in the vibration response tablediscussed above. FIG. 41 shows example information that may be stored inorder to more accurately control ORMs according to the methods andconsiderations disclosed in the current document. The information isstored in five different tables. An ORM table 4102 stores controlinformation for each different ORM in a device, appliance, or system.This information includes an identifier for the ORM 4104, an indicationof the ORM type 4105, an indication of the minimum pulse width that canbe input in a control signal 4106, an indication of the minimumamplitude 4107 and maximum amplitude 4108 of an input control signal,indications of whether or not mechanical or electromagnetic latches areavailable in the ORM 4110 and 4112, the oscillation path length withinthe ORM 4114, the number of movable stops, or path blocks included inthe ORM 4115, and the positioning range for each moveable stop4116-4117. An event-types table 4120 includes various different types ofcontrol events. These may include deployment of latches, movement ofmovable stops, and output of control pulses of various different widthsand amplitudes. An events table 4122 includes ordered pairs of eventtypes and relative times that each represents one of the many differenttypes of control events that can be input to ORMs. Each control eventincludes an event ID 4123, an event type 4124, and a relative time thatspecifies a time point within a control pattern 4126 at which the eventoccurs. Table 4128 includes the actual control actions that a logiccontroller employs to initiate each type of event in each type of ORM.For each type of control, the table includes an indication of the eventtype 4130, the ORM type 4131, a control ID 4132, a signal type 4133, asignal strength 4134, and any of many different other characterizationsof the type of control 4135 executed by the control logic in order tocontrol an ORM to produce a particular type of event. Finally, table4140 lists all of the different types of control patterns that can beused to control ORMs. These are equivalent to the previously discussedcontrol patterns. Each control pattern includes a control-patternidentifier 4142, an indication of the number of events in the controlpattern 4144, and the event identifiers for those events 4146-4149.

FIG. 42 provides an alternative implementation of the routine “generatevibration,” discussed above with reference to FIG. 36. The alternativeinformation incorporates more accurate control of ORMs using theinformation and techniques discussed above with reference to FIGS.37A-41. In step 4202, the routine receives a vibration type, duration,amplitude, and start time for a desired device, appliance, or systemvibration response. Then, in the for-loop of steps 42044212, the routineprepares for controlling each of the ORMs in the device, appliance, orsystem. In step 4205, a control-pattern ID is selected from thevibration-type table for the ORM, modified with respect to thepreviously described vibration-type table to include the identifiers ofcontrol patterns that are tabulated in the control-patterns table 4149.In step 4206, the identified control pattern is selected from thecontrol-patterns table. In the inner for-loop of steps 4207-4212, eachevent is selected from the control pattern selected in step 4206. Foreach event, a corresponding event control entry is selected from theevent-control table, in step 4208. The controls are scaled, in step4209, according to the desired duration and amplitude for the vibrationresponse. In step 4210, the time associated with the event, selectedfrom the events table, is also scaled. In step 4211, the scaled controlsand times are added to a list of time-ordered events, the controls forwhich are issued to the ORM during generation of the desired vibrationresponse. In step 4214, the routine waits until the desired start timefor the vibration response. Note that the desired start time takes intoconsideration any pre-vibration-response controls needed to produce thedesired vibration response. Then, in the while-loop of steps 4216-4222,the routine carries out ORM control over a set of time points spanningthe desired vibration-response duration. In the inner for-loop of steps4217-4220, the routine initiates a control sequence for each of thetime-ordered events for each of the ORMs at the points in time in whichthe control sequence is specified for issuance. Then, in step 4221, theroutine waits for a next update-control time point.

The above-discussed methods for more accurate and reliable control ofORMs provide increased opportunities for generating increasingly complexvibration responses in devices, appliances, and systems that containORMs. However, with increasing complexity, attention is needed tosimplifying and increasing the efficiency of driving-oscillation sensingin order to provide feedback-based control to ORMs. In addition, withmore accurate control, it is possible to increase the complexity of ORMtime-dependent driving oscillations, significantly increasing the typesof time-dependent driving oscillations that can be encoded in controlpatterns and thus increasing the device, appliance, and system vibrationresponses to controlled ORM driving oscillations.

FIG. 43 illustrates both methods for increasing the complexity of ORMtime-dependent driving oscillations as well as increasing andsimplifying feedback control. FIG. 43 provides a simplifiedORM-containing device architecture similar to that provided by FIG. 25,discussed above. However, as shown in FIG. 43, each of the ORMs, such asORM 2504, is coupled to an additional passive oscillator, such aspassive oscillator 4302. In various different implementations, a givenORM may be coupled to one, two, or more passive oscillators. When an ORMis mechanically coupled to one or more additional passive oscillators,the passive oscillators greatly increase the number of degrees offreedom for vibration of the combined ORM and one or more passiveoscillators. The mathematical models for the vibration modes andresonant frequencies become far more complex, involving eigenvalueproblems arising from coupled differential equations. As discussedabove, the number of resonant frequencies for a system is generallyproportional to the number of vibrational degrees of freedom.Furthermore, coupling passive oscillators to ORMs may provide new,complex vibrational modes with different frequencies and amplitudes.Thus, vibration components comprising an ORM and one or more passiveoscillators can significantly increase the complexity of thetime-dependent driving oscillations produced by these vibrationcomponents, and therefore greatly expand the types, frequencies, andmodes of vibration responses produced in a device, appliance, or systemcontaining the complex vibration components.

In the simpler system shown in FIG. 25, two vibration sensors 2510 and2511 were included. These vibration sensors detected vibration in one,two, or three orthogonal directions of the device, appliance, or system2502 in which multiple ORMs are included. However, as shown in FIG. 43,sensors that provide information regarding the driving oscillationsproduced by ORMs and passive oscillators, such as sensors 4304 and 4305in ORM 2504 and passive oscillator 4302, respectively, may also provideinformation to local control logic, such as control logic 4306, withinORMs as well as the controller 2516 that controls one or more ORMswithin the device, appliance, or system 2502. The sensors local to ORMsand passive oscillators may be designed to sense driving-oscillationcharacteristics while vibration sensors 2510 and 2511 are designed tosense the vibration response of the entire device, appliance, or system2502.

By including a variety of different types of sensors within differentpositions and components of an ORM-containing device, appliance, orsystem, an opportunity is provided for hierarchical sensing andcorresponding feedback control within a device, appliance, or system. Inmany cases, the output from a vibration sensor may be difficult totranslate into accurate feedback information and corresponding controlsignals. For example, the vibration sensed by the vibration sensors2510-2511 may be rather indirectly related to the individual drivingoscillations produced by the ORM-based vibration components, such as thevibration component comprising ORM 2504 and mechanically coupled passiveoscillator 4302. In such cases, a significant amount of inference may benecessary to logically infer the driving oscillations of the vibrationcomponents producing the vibration-sensor signals and to computecorresponding adjustments to ORM control. Furthermore, there may besignificant temporal lags between sensor vibration and the drivingoscillations that produce the sensor vibration. Many of the commontechniques for sensing ORM driving oscillations in order to providelocal feedback to ORMs may suffer similar problems. Furthermore, theremay be many different types of interferences and couplings betweenelectromechanical driving forces, electromagnetic sensors, and otherdevice components that mask or entirely prevent accurate inference ofthe real-time characteristics of ORMs and the vibration-response of theentire device, appliance, or system. For this reason, simpler and moredirect types of sensing and control can provide enormous benefits inachieving desired vibration responses of the entire device, appliance,or system, particularly in devices, appliances, and systems that includemultiple vibration components, each consisting of an ORM and one or morepassive oscillators as well as various types of vibration sensorsexternal to ORMs and passive oscillators as well as sensors within, orcoupled to. ORMs and passive oscillators.

FIG. 44 illustrates one type of ORM driving-oscillation sensor that canbe employed to provide feedback information for ORM control. In FIG. 44,a linear ORM 4402, used in previous examples, is again shown as anexample ORM. The linear ORM includes a mass or weight 4404 that isdriven electromagnetically by a drive coil 4406 to oscillate along alinear tube 4408. In this ORM, two sensor coils 4410 and 4412 areadditionally included in order to detect motion of the weight or mass4404 within the ORM as it is driven to oscillate. The sensor informationmay be provided to an internal ORM control logic 4414 or to thecontroller 2516 within the device, appliance, or system that includesthe ORM. In certain cases, both the internal ORM control logic as wellas the device controller may receive sensor information, for variousdifferent types of feedback-based control purposes. In the lower portion4420 of FIG. 44, a small control-flow diagram is provided to indicatehow the sensor information is used. When a controller receives a targetfrequency ω_(t) at which the ORM is to oscillate, in step 4422, thecontrol logic or controller initiates oscillation of the weight or mass,in step 4424, and then, in the while-loop of steps 4426-4430, continuesto monitor the sensor output and modify control input to the ORM inorder that the ORM oscillates at the target frequency ω_(t). Thisinvolves reading the sensor data to determine the actual frequency ofoscillation ω_(a), in step 4427, then determining a difference betweenthe target and actual frequencies in step 4428, using the determineddifference to compute modifications to the current control of the ORMand modify the control in a way estimated to result in the ORM achievingthe target frequency ω_(t), in step 4429, and executing the modifiedcontrol in step 4430. In many cases, the computations are sufficientlycomplex that the feedback-based control needs to be implemented bycontrol routines running on a processor. Furthermore, because thesensors 4410 and 4412 are essentially external to the actual oscillatingmass or weight and oscillation path, the data that they output does notdirectly correspond to position and velocity data for the moving mass orweight, but is instead a signal proportional to the current induced inthe sensor coils by the moving mass. A fair amount of interpretation isrequired to convert the sensor information into velocity and positioninformation, or even into information related to the actual frequencyω_(a) of oscillation. Moreover, there may be significant electromagneticinterference between the drive coil 4406 and the sensor coils 4410 and4412, limiting the accuracy at which the actual frequency ω_(a) or massposition and velocity can be determined. Sensor-coil-based inferencesmay also suffer from significant lag times between passing of the movingweight through the sensor coil and generation of a corresponding signal.In a complex system in which many different sensors are being monitoredfor many different ORMs, as well as sensors that detect the vibrationresponse for a device, appliance, or system containing the ORMs, use ofinferential feedback information, such as that provided by the sensorcoils shown in FIG. 44, may be problematic, at best.

FIG. 45 illustrates an alternative approach to sensing the drivingoscillations produced by an ORM. In this approach, rather thaninferential sensing, as described above with reference to FIG. 44, theORM 4502 includes a direct sensor 4504 that directly determines theposition and velocity of the moving weight or mass 4506. This directposition and velocity information is output to an internal ORM controllogic 4508 that can directly use the position and velocity informationto update ORM control in order to achieve a target frequency ω_(t). Thelower portion of FIG. 45 4510, includes a small control-flow diagram,similar to that included in FIG. 44, to illustrate internal controlusing the direct sensor data. When a target frequency ω_(t) is receivedin step 4512, the control initiates oscillation of the mass in step4514. In addition, in step 4616, the control logic initiates sensoroutput. Then, in the while-loop of steps 4518-4521, the control logiccontinuously receives position and velocity data from the sensor andexecutes immediate control based on that position and velocity data. Instep 4519, the control logic reads the position and velocity data fromthe sensor. This may involve a certain amount of computation, such ascomputing the difference and position with time over several readings,but because of the direct nature of the position sensing, is generallyfar less inferential and computationally intensive than in the case ofindirect sensing. Then, in step 4520, the appropriate control iscomputed based on the target frequency ω_(t) and the current positionand velocity of the moving mass p and v. This computation may be madebased on a predetermined function, based on tables with values, orcomputed as another of the initiation steps, including initiation steps4514 and 4516. Finally, in step 4521, the computed control is executedby the controller. In many cases, the determination of the appropriatecontrol corresponding to sensed velocity and position data can be madeby logic circuitry, rather than a programmed processor. In many cases,the position and velocity data is more accurate and far more timelyprovided than position and velocity data derived from indirect sensingand inference.

There are many different approaches to direct sensing of the positionand velocity of a moving mass within an ORM. FIGS. 46A-B illustrateseveral possible direct-sensing approaches. As shown in FIG. 46A, theORM may contain a series of apertures, such as aperture 4602, throughwhich an illumination source shines light. Across the tubular channelcontaining the oscillation path, there is a photodiode sensor for eachaperture, such as photodiode sensor 4604 corresponding to aperture 4602.The current position of the moving mass can be determined from thepattern of high and low photodiode-sensor outputs, shown above the ORMin FIG. 46A 4606. A series of captured photodiode-sensor outputs atconsecutive points in time provides the information needed to accuratelycompute the velocity of the moving mass. As shown in FIG. 46B, anotherapproach to computing the position and velocity of the moving massinvolves a series of regularly spaced pressure or presence sensors, suchas pressure or presence sensor 4610. Similar to the photodiode-sensoroutput, the output from the pressure or positions sensors provides apattern in which the position of the moving mass can be recognized.Various types of Hall-effect electronic sensors, reflection-pathsensors, and other types of sensors may be employed to directlydetermine the position and velocity of a moving mass within an ORM.

Although the present invention has been described in terms of particularembodiments, it is not intended that the invention be limited to theseembodiments. Modifications will be apparent to those skilled in the art.For example, any of many different design and implementation parametersmay be varied in order to provide different implementations of the ORMcontrol logic discussed above, including choice of type of logiccontrol, programming language, in the case of a processor-controlledcontroller, modular organization, data structures, control structures,logic circuitry, processor type, and many other such design andimplementation parameters. Many different types of direct sensors thatrelatively directly determine the velocity and position of theoscillating mass within an ORM can be used in different types of ORMs.Various types of electromagnetic sensors that sense position,precious-metal brush-contact sensors, and Reed switches are examples ofthe many types of sensors that can be used to directly determineoscillating-mass position and velocity and induce direct, correspondingcontrol of the ORM.

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the invention.However, it will be apparent to one skilled in the art that the specificdetails are not required in order to practice the invention. Theforegoing descriptions of specific embodiments of the present inventionare presented for purpose of illustration and description. They are notintended to be exhaustive or to limit the invention to the precise formsdisclosed. Many modifications and variations are possible in view of theabove teachings. The embodiments are shown and described in order tobest explain the principles of the invention and its practicalapplications, to thereby enable others skilled in the art to bestutilize the invention and various embodiments with various modificationsas are suited to the particular use contemplated. It is intended thatthe scope of the invention be defined by the following claims and theirequivalents:

1. An oscillating resonant module comprising: an oscillation path: amass that is driven, using energy supplied to the oscillating resonantmodule, to oscillate back and forth along the oscillation path; one ormore sensors that each outputs indications of one or more of a positionand a velocity of the mass at a specific point in time; and a controlcomponent that receives control signals input to the oscillatingresonant module, receives outputs from the one or more sensors, andcontrols, according to the received control signals, oscillation of themass to produce a vibration response of the oscillating resonant moduleby generating outputs to an actuator that drives the mass to oscillate.2. The oscillating resonant module of claim 1 wherein the controloutputs include variable-width voltage pulses.
 3. The oscillatingresonant module of claim 1 wherein the control outputs includevariable-voltage voltage pulses.
 4. The oscillating resonant module ofclaim 1 wherein the control outputs include both variable-width andvariable-voltage voltage pulses.
 5. The oscillating resonant module ofclaim 1 wherein the one or more sensors include one or more directsensors selected from among: photodiode sensors; pressure sensors;presence sensors; Hall-effect electronic sensors; and reflection-pathsensors.
 6. The oscillating resonant module of claim 1 wherein the oneor more sensors include one or more indirect sensors selected fromamong: electromagnetic motion sensors; vibration sensors; presencesensors; Hall-effect electronic sensors; and reflection-path sensors. 7.The oscillating resonant module of claim 1 wherein the controllerincludes a processor that accesses an electronic memory which storesprocessor instructions that implement control logic.
 8. The oscillatingresonant module of claim 7 wherein the controller accesses avibration-type table stored in the electronic memory, each entry ofwhich represents a different vibration type for the oscillating resonantmodule and the control operations that the controller carries out togenerate vibration of the vibration type.
 9. The oscillating resonantmodule of claim 8 wherein the controller controls the oscillation of themass to produce a vibration response that includes frequencies in arange of frequencies greater than and less than each of one or moreresonant frequencies of the oscillating resonant module.
 10. A vibrationdevice comprising: multiple oscillating resonant modules, eachoscillating resonant module including an oscillation path, a mass thatis driven, using energy supplied to the oscillating resonant module, tooscillate back and forth along the oscillation path, and one or moresensors that each outputs indications of one or more of a position and avelocity of the mass at a specific point in time; and a controller thatincludes a processor that accesses an electronic memory which storesprocessor instructions that implement control logic and that areexecuted by the processor, receives control signals. receives outputsfrom the one or more sensors of each of the multiple oscillatingresonant modules, and controls, according to the received controlsignals, oscillation of the masses within each of the multipleoscillating resonant modules to produce a vibration response of thevibration device by generating outputs to an actuator in each of themultiple oscillating resonant modules.
 11. The vibration device of claim10 wherein the control outputs include variable-width voltage pulses.12. The vibration device of claim 10 wherein the control outputs includevariable-voltage voltage pulses.
 13. The vibration device of claim 10wherein the control outputs include both variable-width andvariable-voltage voltage pulses.
 14. The vibration device of claim 10wherein the one or more sensors within each of the multiple oscillatingresonant modules include one or more direct sensors selected from among:photodiode sensors: pressure sensors; presence sensors; Hall-effectelectronic sensors; and reflection-path sensors.
 15. The vibrationdevice of claim 10 wherein the one or more sensors within each of themultiple oscillating resonant modules include one or more indirectsensors selected from among: electromagnetic motion sensors: vibrationsensors; presence sensors; Hall-effect electronic sensors: andreflection-path sensors.
 16. The vibration device of claim 10 whereinthe controller accesses a vibration-type table stored in the electronicmemory, each entry of which represents a different vibration type for anoscillating resonant module and the control operations that thecontroller carries out to generate vibration of the vibration typewithin the oscillating resonant module.
 17. The vibration device ofclaim 10 wherein the controller accesses multiple tables stored in theelectronic memory to extract control information to control the multipleoscillating resonant modules to produce vibration of the vibrationdevice.
 18. The vibration device of claim 17 wherein the multiple tablesinclude an ORM table that stores control information for each multipleoscillating resonant module, including: an identifier for theoscillating resonant module; an indication of the type of theoscillating resonant module; an indication of the minimum pulse widththat can be input in a control signal to the oscillating resonantmodule; and an oscillation-path length of the oscillating resonantmodule.
 19. The vibration device of claim 17 wherein the multiple tablesinclude an event-types table that stores descriptions of different typesof control events.
 20. The vibration device of claim 17 wherein themultiple tables include an events table that includes ordered pairs ofevent types and relative times.
 21. The vibration device of claim 17wherein the multiple tables include a control-actions table, each entryof which includes: an indication of an event type; an indication of anORM type; a control ID; a signal type; and a signal strength.
 22. Thevibration device of claim 16 wherein the multiple tables include acontrol-patterns table that lists different types of control patterns,each entry of which includes: a control-pattern identifier. anindication of the number of events in the control pattern; and eventidentifiers for the events.
 23. The vibration device of claim 10 whereinthe controller controls oscillation of the masses within each of themultiple oscillating resonant modules to produce a vibration response ofthe vibration device that includes frequencies in range of frequenciesgreater than and less than each of one or more resonant frequencies ofthe oscillating resonant module.